/**
 * Fichier Db4oDaoEnseignant.java : Définition de classe
 * fr.unice.gnpt.core.dao.db4o.Db4oDaoEnseignant : Fabrique de DAO de type
 * Enseignant pour DB4O
 * 
 * Auteurs : Groupe GNPT : Gastinel, Nicolas, Pellegrino, Trovato
 */
package fr.unice.gnpt.core.dao.db4o;

import java.util.ArrayList;
import java.util.Collection;

import fr.unice.gnpt.core.Enseignement;
import fr.unice.gnpt.core.Service;
import fr.unice.gnpt.core.TacheAdministrative;
import fr.unice.gnpt.core.dao.DaoException;
import fr.unice.gnpt.core.dao.DaoService;

/**
 * Classe de gestion de DAO de type Enseignant pour DB4O.
 * 
 * @author gnpt
 * @version 0.1.2
 */
public class Db4oDaoService extends Db4oDaoGenerique<Service, Long> implements
		DaoService {

	/**
	 * Constructeur par défaut.
	 * 
	 * @param nomFichierBdd
	 *            nom du fichier de bdd à passer au DAO afin de pouvoir ouvrir
	 *            une connexion.
	 */
	public Db4oDaoService(String nomFichierBdd) {
		super(Service.class, nomFichierBdd);
	}

	/**
	 * @see fr.unice.gnpt.core.dao.DaoService#findAllEnseignements()
	 */
	@Override
	public Collection<Enseignement> findAllEnseignements() throws DaoException {

		Collection<Service> services = super.findAll();
		Collection<Enseignement> res = new ArrayList<Enseignement>();

		for (Service s : services) {
			if (s instanceof Enseignement) {
				res.add((Enseignement) s);
			}
		}

		return res;
	}

	/**
	 * @see fr.unice.gnpt.core.dao.DaoService#findAllTachesAdministratives()
	 */
	@Override
	public Collection<TacheAdministrative> findAllTachesAdministratives()
			throws DaoException {

		Collection<Service> services = super.findAll();
		Collection<TacheAdministrative> res = new ArrayList<TacheAdministrative>();

		for (Service s : services) {
			if (s instanceof TacheAdministrative) {
				res.add((TacheAdministrative) s);
			}
		}

		return res;
	}
}
